package com.example.baguwen.service;

import com.example.baguwen.common.PageResult;
import com.example.baguwen.dto.BaguwenFavoriteDTO;
import com.example.baguwen.vo.BaguwenFavoriteVO;

public interface BaguwenFavoriteService {
    
    /**
     * 添加收藏
     */
    BaguwenFavoriteVO add(BaguwenFavoriteDTO favoriteDTO);
    
    /**
     * 更新收藏备注
     */
    BaguwenFavoriteVO update(Long id, BaguwenFavoriteDTO favoriteDTO);
    
    /**
     * 取消收藏
     */
    void delete(Long id);
    
    /**
     * 获取单个收藏信息
     */
    BaguwenFavoriteVO getById(Long id);
    
    /**
     * 根据八股文ID获取当前用户的收藏信息
     */
    BaguwenFavoriteVO getByBaguwenId(Long baguwenId);
    
    /**
     * 检查八股文是否已被当前用户收藏
     */
    boolean isFavorite(Long baguwenId);
    
    /**
     * 分页获取当前用户的收藏列表
     */
    PageResult<BaguwenFavoriteVO> list(int pageNum, int pageSize);
} 